Computers communicate with peripheral devices using a variety of protocols. The PS/2 device interface, originally developed by IBM, has long been used for communications between computers and input devices (e.g., mice and keyboards). In many ways, the PS/2 protocol (“PS/2”) has been supplanted by the Universal Serial Bus (USB) standard. However, PS/2 devices and related hardware and software components will persist for some time to come. Many computer manufacturers, either for backward compatibility with older hardware or for other reasons, include both PS/2 and USB ports for connection to input devices. In some cases, marketing concerns may require input devices to be compatible with both PS/2 and USB ports. Consumers may not always know what type of connection is required by a particular computer, and the flexibility to connect to either interface is desired. For these and other reasons, PS/2 input devices continue to be manufactured.
A standard PS/2 data packet for a mouse is three or four bytes in length. When used in conjunction with existing PS/2 port driver software, the PS/2 packet only contains fields for limited types of data. FIG. 1 shows a standard PS/2 data packet format for a five-button mouse having a scroll wheel. The first byte is used for providing the sign (i.e., direction) of x and y movement, as well as the status of the right, middle and left buttons. The second and third bytes contain data for x and y displacement, respectively. The fourth byte is used to provide data for rotation of a scroll wheel (bits 0 through 3) and two additional buttons (bits 4 and 5). Other standard PS/2 data packet formats exist, e.g., for a mouse with no scroll wheel and for a 3-button mouse with a scroll wheel.
When developing new input devices which will communicate via a PS/2 interface, there is often a need to include features not contemplated by the PS/2 protocol, and thus not supported by many standard drivers. These new features may provide new types of input data. In particular, these features may generate data that do not correspond to the types of data for which there are reserved spaces in existing PS/2 packet formats. When a new type of data is inserted into a PS/2 packet space, existing PS/2 port drivers fail to recognize that data as distinct from the type of data normally inserted into the same space. As a result, the port driver may process the data incorrectly, and/or may provide the data to other software components without properly identifying the data type. Rewriting existing PS/2 port drivers is undesirable for various reasons. Commonly-owned U.S. patent application Ser. No. 10/420,039, titled “Attribute Reporting Over A PS/2 Protocol,” filed Apr. 17, 2003 and incorporated by reference (now U.S. Pat No. 6,772,236), provides at least one solution to this problem. In particular, that application provides an approach for reporting device attributes such as battery-power state and signal strength using a PS/2 protocol.